#from itertools import groupby
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" "">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 <head>
  <title>Full Index</title>
  <link rel="stylesheet" href="style.css" type="text/css"/>
 </head>

#set $star = []
#for $item in $spec.everything.values() + $spec.errors.values() + $spec.generic_types
 #echo $star.append(($item.short_name, $item))
 #slurp
#end for
#echo $star.sort(key = lambda t: t[0].title())
#slurp
## one use iterators...
#set $groups = [ (l, list(g)) for l, g in (groupby($star, key = lambda t: t[0][0].upper())) ]
#set $letters = set(map(lambda t: t[0], groups))

 <body>
  <div class="header">
   <h1>Full Index</h1>
   <a href="index.html">Interface Index</a>
   (<a href="interfaces.html">Compact</a>)
   #for $a in map(chr, xrange(ord('A'), ord('Z')+1))
    #if $a in $letters
     | <a href="#$a">$a</a>
    #else
     | $a
    #end if
   #end for
  </div>

  <div class="main">
   <table class="summary">
   #for l, g in $groups
    <tr><th colspan="3"><a name="$l"></a>$l</th></tr>
    #for $n in $g
     #if $n[1].deprecated
      <tr class="deprecated">
     #else
      <tr>
     #end if
      <td>
       <a href="$n[1].get_url()" title="$n[1].get_title()">$n[0]</a>
       #if $n[1].deprecated: (deprecated)
      </td>
      <td>$n[1].get_type_name()</td>
      <td>
       #if $n[1].parent.__class__.__name__ == 'Interface': $n[1].parent.name
      </td>
     </tr>
    #end for
   #end for
   <table>
  </div>

 </body>
</html>
